<!doctype html>


<html>
<head>
  <link rel="shortcut icon" href="static/images/favicon.ico" type="image/x-icon">
  <title>SafeUrl (Closure Library API Documentation - JavaScript)</title>
  <link rel="stylesheet" href="static/css/base.css">
  <link rel="stylesheet" href="static/css/doc.css">
  <link rel="stylesheet" href="static/css/sidetree.css">
  <link rel="stylesheet" href="static/css/prettify.css">

  <script>
     var _staticFilePath = "static/";
     var _typeTreeName = "goog";
     var _fileTreeName = "Source";
  </script>

  <script src="static/js/doc.js">
  </script>

  <script type="text/javascript" src="//www.google.com/jsapi"></script>
  <script type="text/javascript">
     google.load("visualization", "1", {packages:["orgchart"]});
     var _loadingVisualizations = true;
  </script>

  <meta charset="utf8">
</head>

<body onload="grokdoc.onLoad();">

<div id="header">
  <div class="g-section g-tpl-50-50 g-split">
    <div class="g-unit g-first">
      <a id="logo" href="index.html">Closure Library API Documentation</a>
    </div>

    <div class="g-unit">
      <div class="g-c">
        <strong>Go to class or file:</strong>
        <input type="text" id="ac">
      </div>
    </div>
  </div>
</div>





<div class="colmask rightmenu">
<div class="colleft">
    <div class="col1">
      <!-- Column 1 start -->

<div id="title">
        <span class="fn">html.SafeUrl</span>
        <span>Extends</span>
        <span class="fn-name">
          
        </span>
</div>

<div class="g-section g-tpl-75-25">
  <div class="g-unit g-first" id="description">
    A string that is safe to use in URL context in DOM APIs and HTML documents.

A SafeUrl is a string-like object that carries the security type contract
that its value as a string will not cause untrusted script execution
when evaluated as a hyperlink URL in a browser.

Values of this type are guaranteed to be safe to use in URL/hyperlink
contexts, such as, assignment to URL-valued DOM properties, or
interpolation into a HTML template in URL context (e.g., inside a href
attribute), in the sense that the use will not result in a
Cross-Site-Scripting vulnerability.

Note that, as documented in <code> goog.html.SafeUrl.unwrap</code>, this type's
contract does not guarantee that instances are safe to interpolate into HTML
without appropriate escaping.

Note also that this type's contract does not imply any guarantees regarding
the resource the URL refers to.  In particular, SafeUrls are <b>not</b>
safe to use in a context where the referred-to resource is interpreted as
trusted code, e.g., as the src of a script tag.

Instances of this type must be created via the factory methods
(<code> goog.html.SafeUrl.from</code>, <code> goog.html.SafeUrl.sanitize</code>), etc and
not by invoking its constructor.  The constructor intentionally takes no
parameters and the type is immutable; hence only a default instance
corresponding to the empty string can be obtained via constructor invocation.


  </div>


        <div class="g-unit" id="useful-links">
          <div class="title">Useful links</div>
          <ol>
            <li><a href="goog.html.SafeUrl#fromConstant">Also See:</a></li>
            <li><a href="local_closure_goog_html_safeurl.js.source.html"><span class='source-code-link'>Source Code</span></a></li>
            <li><a href="http://code.google.com/p/closure-library/source/browse/local/closure/goog/html/safeurl.js">Git</a></li>
          </ol>
        </div>
</div>






<h2 class="g-first">Inheritance</h2>
<div class='gviz-org-chart-container goog-inline-block'>
<table class='gviz-org-chart' style='display:none'>
  <tr><td>goog.html.SafeUrl</td><td></td></tr>
</table>
</div>
<div class='gviz-org-chart-container goog-inline-block'>
<table class='gviz-org-chart' style='display:none'>
</table>
</div>




  <h2>Constructor</h2>
      <div class="fn-constructor">
    goog.html.SafeUrl(<span></span>)
  </div>



<h2>Instance Methods</h2>


  <div class="legend">
        <span class="key publickey"></span><span>Public</span>
        <span class="key protectedkey"></span><span>Protected</span>
        <span class="key privatekey"></span><span>Private</span>
  </div>







<div>
       <div class="desc">
         Defined in
         <span class="fn-name">
            <a href="class_goog_html_SafeUrl.html">
              goog.html.SafeUrl
            </a>
         </span>
       </div>






<div class="section">
  <table class="horiz-rule">


     <tr class="even entry public">
       <td class="access"></td>






  <td>
    <a name="goog.html.SafeUrl.prototype.getDirection"></a>


     <div class="arg">
       <img align="left" src="static/images/blank.gif">

        <span class="entryName">getDirection<span class="args">()</span>
        </span>
      </div>


     <div class="entryOverview">
       Returns this URLs directionality, which is always <code> LTR</code>.

     </div>

   
  </td>


  <td class="view-code">
     <a href="local_closure_goog_html_safeurl.js.source.html#line161">code &raquo;</a>
  </td>
     </tr>


     <tr class="odd entry public">
       <td class="access"></td>






  <td>
    <a name="goog.html.SafeUrl.prototype.getTypedStringValue"></a>


     <div class="arg">
       <img align="left" src="static/images/blank.gif">

        <span class="entryName">getTypedStringValue<span class="args">()</span>
        </span>
      </div>


     <div class="entryOverview">
       Returns this SafeUrl's value a string.

IMPORTANT: In code where it is security relevant that an object's type is
indeed <code> SafeUrl</code>, use <code> goog.html.SafeUrl.unwrap</code> instead of this
method. If in doubt, assume that it's security relevant. In particular, note
that goog.html functions which return a goog.html type do not guarantee that
the returned instance is of the right type. For example:

<pre class="lang-js prettyprint">
var fakeSafeHtml = new String('fake');
fakeSafeHtml.__proto__ = goog.html.SafeHtml.prototype;
var newSafeHtml = goog.html.SafeHtml.from(fakeSafeHtml);
// newSafeHtml is just an alias for fakeSafeHtml, it's passed through by
// goog.html.SafeHtml.from() as fakeSafeHtml instanceof goog.html.SafeHtml.
</pre>

IMPORTANT: The guarantees of the SafeUrl type contract only extend to the
behavior of browsers when interpreting URLs. Values of SafeUrl objects MUST
be appropriately escaped before embedding in a HTML document. Note that the
required escaping is context-sensitive (e.g. a different escaping is
required for embedding a URL in a style property within a style
attribute, as opposed to embedding in a href attribute).


     </div>

   
  </td>


  <td class="view-code">
     <a href="local_closure_goog_html_safeurl.js.source.html#line145">code &raquo;</a>
  </td>
     </tr>


     <tr class="even entry public">
       <td class="access"></td>






  <td>
    <a name="goog.html.SafeUrl.prototype.toString"></a>


     <div class="arg">
       <img align="left" src="static/images/blank.gif">

        <span class="entryName">toString<span class="args">()</span>
        </span>
      </div>


     <div class="entryOverview">
       Returns a debug string-representation of this value.

To obtain the actual string value wrapped in a SafeUrl, use
<code> goog.html.SafeUrl.unwrap</code>.


     </div>

   
  </td>


  <td class="view-code">
     <a href="local_closure_goog_html_safeurl.js.source.html#line176">code &raquo;</a>
  </td>
     </tr>


  </table>
</div>
</div>




<h2>Instance Properties</h2>







<div>
       <div class="desc">
         Defined in
         <span class="fn-name">
            <a href="class_goog_html_SafeUrl.html">
              goog.html.SafeUrl
            </a>
         </span>
       </div>






<div class="section">
  <table class="horiz-rule">


     <tr class="even entry private">
       <td class="access"></td>





  <a name="goog.html.SafeUrl.prototype.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_"></a>

  <td>


     <div class="arg">
        <img align="left" src="static/images/blank.gif">

        <span class="entryName">SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_</span>
        : 
     </div>


     <div class="entryOverview">
       A type marker used to implement additional run-time type checking.

     </div>

  </td>


  <td class="view-code">
     <a href="local_closure_goog_html_safeurl.js.source.html#line83">Code &raquo;</a>
  </td>
     </tr>


     <tr class="odd entry public">
       <td class="access"></td>





  <a name="goog.html.SafeUrl.prototype.implementsGoogI18nBidiDirectionalString"></a>

  <td>


     <div class="arg">
        <img align="left" src="static/images/blank.gif">

        <span class="entryName">implementsGoogI18nBidiDirectionalString</span>
        : 
     </div>


     <div class="entryOverview">
       <span class='nodesc'>No description.</span>
     </div>

  </td>


  <td class="view-code">
     <a href="local_closure_goog_html_safeurl.js.source.html#line154">Code &raquo;</a>
  </td>
     </tr>


     <tr class="even entry public">
       <td class="access"></td>





  <a name="goog.html.SafeUrl.prototype.implementsGoogStringTypedString"></a>

  <td>


     <div class="arg">
        <img align="left" src="static/images/blank.gif">

        <span class="entryName">implementsGoogStringTypedString</span>
        : 
     </div>


     <div class="entryOverview">
       <span class='nodesc'>No description.</span>
     </div>

  </td>


  <td class="view-code">
     <a href="local_closure_goog_html_safeurl.js.source.html#line115">Code &raquo;</a>
  </td>
     </tr>


     <tr class="odd entry private">
       <td class="access"></td>





  <a name="goog.html.SafeUrl.prototype.privateDoNotAccessOrElseSafeHtmlWrappedValue_"></a>

  <td>


     <div class="arg">
        <img align="left" src="static/images/blank.gif">

        <span class="entryName">privateDoNotAccessOrElseSafeHtmlWrappedValue_</span>
        : 
     </div>


     <div class="entryOverview">
       The contained value of this SafeUrl.  The field has a purposely ugly
name to make (non-compiled) code that attempts to directly access this
field stand out.

     </div>

  </td>


  <td class="view-code">
     <a href="local_closure_goog_html_safeurl.js.source.html#line75">Code &raquo;</a>
  </td>
     </tr>


  </table>
</div>
</div>




<h2>Static Methods</h2>






<div class="section">
  <table class="horiz-rule">


     <tr class="even entry private">
       <td class="access"></td>






  <td>
    <a name="goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse_"></a>


     <div class="arg">
       <img align="left" src="static/images/blank.gif">

        <span class="entryNamespace">goog.html.SafeUrl.</span><span class="entryName">createSafeUrlSecurityPrivateDoNotAccessOrElse_<span class="args">(<span class="arg">url</span>)</span>
        </span>
        &#8658; <span>!</span><span class="type"><a href="class_goog_html_SafeUrl.html">goog.html.SafeUrl</a></span>
      </div>


     <div class="entryOverview">
       Utility method to create SafeUrl instances.

This function is considered "package private", i.e. calls (using "suppress
visibility") from other files within this package are considered acceptable.
DO NOT call this function from outside the goog.html package; use appropriate
wrappers instead.


     </div>


    <! -- Method details -->
    <div class="entryDetails">

      <div class="detailsSection">
        <b>Arguments: </b>






<table class="horiz-rule">
     
   <tr class="even">
     <td>
        <span class="entryName">url</span>
        : <span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String">string</a></span>
        <div class="entryOverview">The string to initialize the SafeUrl object with.</div>
     </td>
   </tr>
  </table>
      </div>
   
      <div class="detailsSection">
        <b>Returns:</b>&nbsp;<span>!</span><span class="type"><a href="class_goog_html_SafeUrl.html">goog.html.SafeUrl</a></span>&nbsp;
            The initialized SafeUrl object.
      </div>
  
    </div>
   
  </td>


  <td class="view-code">
     <a href="local_closure_goog_html_safeurl.js.source.html#line402">code &raquo;</a>
  </td>
     </tr>


     <tr class="odd entry public">
       <td class="access"></td>






  <td>
    <a name="goog.html.SafeUrl.fromConstant"></a>


     <div class="arg">
       <img align="left" src="static/images/blank.gif">

        <span class="entryNamespace">goog.html.SafeUrl.</span><span class="entryName">fromConstant<span class="args">(<span class="arg">url</span>)</span>
        </span>
        &#8658; <span>!</span><span class="type"><a href="class_goog_html_SafeUrl.html">goog.html.SafeUrl</a></span>
      </div>


     <div class="entryOverview">
       Creates a SafeUrl object from a compile-time constant string.

Compile-time constant strings are inherently program-controlled and hence
trusted.


     </div>


    <! -- Method details -->
    <div class="entryDetails">

      <div class="detailsSection">
        <b>Arguments: </b>






<table class="horiz-rule">
     
   <tr class="even">
     <td>
        <span class="entryName">url</span>
        : <span>!</span><span class="type"><a href="class_goog_string_Const.html">goog.string.Const</a></span>
        <div class="entryOverview">A compile-time-constant string from which to
        create a SafeUrl.</div>
     </td>
   </tr>
  </table>
      </div>
   
      <div class="detailsSection">
        <b>Returns:</b>&nbsp;<span>!</span><span class="type"><a href="class_goog_html_SafeUrl.html">goog.html.SafeUrl</a></span>&nbsp;
            A SafeUrl object initialized to <code> url</code>.
      </div>
  
    </div>
   
  </td>


  <td class="view-code">
     <a href="local_closure_goog_html_safeurl.js.source.html#line238">code &raquo;</a>
  </td>
     </tr>


     <tr class="even entry private">
       <td class="access"></td>






  <td>
    <a name="goog.html.SafeUrl.normalize_"></a>


     <div class="arg">
       <img align="left" src="static/images/blank.gif">

        <span class="entryNamespace">goog.html.SafeUrl.</span><span class="entryName">normalize_<span class="args">(<span class="arg">url</span>)</span>
        </span>
        &#8658; <span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String">string</a></span>
      </div>


     <div class="entryOverview">
       Normalizes <code> url</code> the UTF-8 encoding of url, using a whitelist of
characters. Whitelisted characters are not percent-encoded.

     </div>


    <! -- Method details -->
    <div class="entryDetails">

      <div class="detailsSection">
        <b>Arguments: </b>






<table class="horiz-rule">
     
   <tr class="even">
     <td>
        <span class="entryName">url</span>
        : <span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String">string</a></span>
        <div class="entryOverview">The URL to normalize.</div>
     </td>
   </tr>
  </table>
      </div>
   
      <div class="detailsSection">
        <b>Returns:</b>&nbsp;<span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String">string</a></span>&nbsp;
            The normalized URL.
      </div>
  
    </div>
   
  </td>


  <td class="view-code">
     <a href="local_closure_goog_html_safeurl.js.source.html#line328">code &raquo;</a>
  </td>
     </tr>


     <tr class="odd entry public">
       <td class="access"></td>






  <td>
    <a name="goog.html.SafeUrl.sanitize"></a>


     <div class="arg">
       <img align="left" src="static/images/blank.gif">

        <span class="entryNamespace">goog.html.SafeUrl.</span><span class="entryName">sanitize<span class="args">(<span class="arg">url</span>)</span>
        </span>
        &#8658; <span>!</span><span class="type"><a href="class_goog_html_SafeUrl.html">goog.html.SafeUrl</a></span>
      </div>


     <div class="entryOverview">
       Creates a SafeUrl object from <code> url</code>. If <code> url</code> is a
goog.html.SafeUrl then it is simply returned. Otherwise the input string is
validated to match a pattern of commonly used safe URLs. The string is
converted to UTF-8 and non-whitelisted characters are percent-encoded. The
string wrapped by the created SafeUrl will thus contain only ASCII printable
characters.

<code> url</code> may be a URL with the http, https, or mailto scheme,
or a relative URL (i.e., a URL without a scheme; specifically, a
scheme-relative, absolute-path-relative, or path-relative URL).

<code> url</code> is converted to UTF-8 and non-whitelisted characters are
percent-encoded. Whitelisted characters are '%' and, from RFC 3986,
unreserved characters and reserved characters, with the exception of '\'',
'(' and ')'. This ensures the the SafeUrl contains only ASCII-printable
characters and reduces the chance of security bugs were it to be
interpolated into a specific context without the necessary escaping.

If <code> url</code> fails validation or does not UTF-16 decode correctly
(JavaScript strings are UTF-16 encoded), this function returns a SafeUrl
object containing an innocuous string, goog.html.SafeUrl.INNOCUOUS_STRING.


     </div>


    <! -- Method details -->
    <div class="entryDetails">

      <div class="detailsSection">
        <b>Arguments: </b>






<table class="horiz-rule">
     
   <tr class="even">
     <td>
        <span class="entryName">url</span>
        : <span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String">string</a></span><span>&nbsp;|&nbsp;</span><span>!</span><span class="type"><a href="interface_goog_string_TypedString.html">goog.string.TypedString</a></span>
        <div class="entryOverview">The URL to validate.</div>
     </td>
   </tr>
  </table>
      </div>
   
      <div class="detailsSection">
        <b>Returns:</b>&nbsp;<span>!</span><span class="type"><a href="class_goog_html_SafeUrl.html">goog.html.SafeUrl</a></span>&nbsp;
            The validated URL, wrapped as a SafeUrl.
      </div>
  
    </div>
   
  </td>


  <td class="view-code">
     <a href="local_closure_goog_html_safeurl.js.source.html#line302">code &raquo;</a>
  </td>
     </tr>


     <tr class="even entry public">
       <td class="access"></td>






  <td>
    <a name="goog.html.SafeUrl.unwrap"></a>


     <div class="arg">
       <img align="left" src="static/images/blank.gif">

        <span class="entryNamespace">goog.html.SafeUrl.</span><span class="entryName">unwrap<span class="args">(<span class="arg">safeUrl</span>)</span>
        </span>
        &#8658; <span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String">string</a></span>
      </div>


     <div class="entryOverview">
       Performs a runtime check that the provided object is indeed a SafeUrl
object, and returns its value.

IMPORTANT: The guarantees of the SafeUrl type contract only extend to the
behavior of  browsers when interpreting URLs. Values of SafeUrl objects MUST
be appropriately escaped before embedding in a HTML document. Note that the
required escaping is context-sensitive (e.g. a different escaping is
required for embedding a URL in a style property within a style
attribute, as opposed to embedding in a href attribute).

Note that the returned value does not necessarily correspond to the string
with which the SafeUrl was constructed, since goog.html.SafeUrl.sanitize
will percent-encode many characters.


     </div>


    <! -- Method details -->
    <div class="entryDetails">

      <div class="detailsSection">
        <b>Arguments: </b>






<table class="horiz-rule">
     
   <tr class="even">
     <td>
        <span class="entryName">safeUrl</span>
        : <span>!</span><span class="type"><a href="class_goog_html_SafeUrl.html">goog.html.SafeUrl</a></span>
        <div class="entryOverview">The object to extract from.</div>
     </td>
   </tr>
  </table>
      </div>
   
      <div class="detailsSection">
        <b>Returns:</b>&nbsp;<span class="type"><a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String">string</a></span>&nbsp;
            The SafeUrl object's contained string, unless the run-time
    type check fails. In that case, <code> unwrap</code> returns an innocuous
    string, or, if assertions are enabled, throws
    <code> goog.asserts.AssertionError</code>.
      </div>
  
    </div>
   
  </td>


  <td class="view-code">
     <a href="local_closure_goog_html_safeurl.js.source.html#line204">code &raquo;</a>
  </td>
     </tr>


  </table>
</div>



<h2>Static Properties</h2>






<div class="section">
  <table class="horiz-rule">


     <tr class="even entry public">
       <td class="access"></td>





  <a name="goog.html.SafeUrl.INNOCUOUS_STRING"></a>

  <td>


     <div class="arg">
        <img align="left" src="static/images/blank.gif">

        <span class="entryNamespace">goog.html.SafeUrl.</span><span class="entryName">INNOCUOUS_STRING</span>
        : 
     </div>


     <div class="entryOverview">
       The innocuous string generated by goog.html.SafeUrl.sanitize when passed
an unsafe URL.

about:invalid is registered in
<a href="http://www.w3.org/TR/css3-values/#about-invalid">http://www.w3.org/TR/css3-values/#about-invalid</a>.
<a href="http://tools.ietf.org/html/rfc6694#section-2.2.1">http://tools.ietf.org/html/rfc6694#section-2.2.1</a> permits about URLs to
contain a fragment, which is not to be considered when determining if an
about URL is well-known.

Using about:invalid seems preferable to using a fixed data URL, since
browsers might choose to not report CSP violations on it, as legitimate
CSS function calls to attr() can result in this URL being produced. It is
also a standard URL which matches exactly the semantics we need:
"The about:invalid URI references a non-existent document with a generic
error condition. It can be used when a URI is necessary, but the default
value shouldn't be resolveable as any type of document".


     </div>

  </td>


  <td class="view-code">
     <a href="local_closure_goog_html_safeurl.js.source.html#line108">Code &raquo;</a>
  </td>
     </tr>


     <tr class="odd entry private">
       <td class="access"></td>





  <a name="goog.html.SafeUrl.NORMALIZE_MATCHER_"></a>

  <td>


     <div class="arg">
        <img align="left" src="static/images/blank.gif">

        <span class="entryNamespace">goog.html.SafeUrl.</span><span class="entryName">NORMALIZE_MATCHER_</span>
        : 
     </div>


     <div class="entryOverview">
       Matches characters and strings which need to be replaced in the string
generated by encodeURI. Specifically:

- '\'', '(' and ')' are not encoded. They are part of the reserved
  characters group in RFC 3986 but only appear in the obsolete mark
  production in Appendix D.2 of RFC 3986, so they can be encoded without
  changing semantics.
- '[' and ']' are encoded by encodeURI, despite being reserved characters
  which can be used to represent IPv6 addresses. So they need to be decoded.
- '%' is encoded by encodeURI. However, encoding '%' characters that are
  already part of a valid percent-encoded sequence changes the semantics of a
  URL, and hence we need to preserve them. Note that this may allow
  non-encoded '%' characters to remain in the URL (i.e., occurrences of '%'
  that are not part of a valid percent-encoded sequence, for example,
  'ab%xy').


     </div>

  </td>


  <td class="view-code">
     <a href="local_closure_goog_html_safeurl.js.source.html#line363">Code &raquo;</a>
  </td>
     </tr>


     <tr class="even entry private">
       <td class="access"></td>





  <a name="goog.html.SafeUrl.NORMALIZE_REPLACER_MAP_"></a>

  <td>


     <div class="arg">
        <img align="left" src="static/images/blank.gif">

        <span class="entryNamespace">goog.html.SafeUrl.</span><span class="entryName">NORMALIZE_REPLACER_MAP_</span>
        : 
     </div>


     <div class="entryOverview">
       Map of replacements to be done in string generated by encodeURI.

     </div>

  </td>


  <td class="view-code">
     <a href="local_closure_goog_html_safeurl.js.source.html#line371">Code &raquo;</a>
  </td>
     </tr>


     <tr class="odd entry private">
       <td class="access"></td>





  <a name="goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_"></a>

  <td>


     <div class="arg">
        <img align="left" src="static/images/blank.gif">

        <span class="entryNamespace">goog.html.SafeUrl.</span><span class="entryName">TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_</span>
        : 
     </div>


     <div class="entryOverview">
       Type marker for the SafeUrl type, used to implement additional run-time
type checking.

     </div>

  </td>


  <td class="view-code">
     <a href="local_closure_goog_html_safeurl.js.source.html#line387">Code &raquo;</a>
  </td>
     </tr>


  </table>
</div>









<div class="section">
  <table class="horiz-rule">


  </table>
</div>
      <!-- Column 1 end -->
    </div>

        <div class="col2">
          <!-- Column 2 start -->
          <div class="col2-c">
            <h2 id="ref-head">Package html</h2>
            <div id="localView"></div>
          </div>

          <div class="col2-c">
            <h2 id="ref-head">Package Reference</h2>
            <div id="sideTypeIndex" rootPath="" current="html.SafeUrl"></div>
          </div>
          <!-- Column 2 end -->
        </div>
</div>
</div>

</body>
</html>
